package com.gzhryc.shared_device.cdcz.core;

import com.gzhryc.shared_device.iot.core.IOTClient;
import com.gzhryc.shared_device.cdcz.core.models.*;

/**
 * 充电插座网络事件
 * @version 2022-10-03
 */
public interface ICDCZNetworkEventListener {

    public boolean online(CDCZOnlineNotify onlineNotify);

    public void heartbeat(IOTClient iotClient, CDCZHeartbeatNotify heartNotify);

    public void searchResult(IOTClient iotClient,CDCZSearchResultNotify searchResultNotify);

    /**
     * 充电启动结果
     * @param chargeStartupResultNotify
     */
    public void chargeStartupResult(IOTClient iotClient,CDCZChargeStartupResultNotify chargeStartupResultNotify);

    /**
     * 充电结束
     * @param chargeCloseNotify
     */
    public void chargeClose(CDCZChargeCloseNotify chargeCloseNotify);

    /**
     * 卡槽异常
     * @param abnormalNotify
     */
    public void slotAbnormal(CDCZPlugAbnormalNotify abnormalNotify);

    /**
     * 查询从机
     * @param findSlaveDeviceResultNotify
     */
    public void findSlaveDevice(CDCZFindSlaveDeviceResultNotify findSlaveDeviceResultNotify);

    /**
     * 绑定从机返回
     * @param bindSlaveDeviceNotify
     */
    public void bindSlaveDevice(CDCZBindSlaveDeviceNotify bindSlaveDeviceNotify);

    /**
     * 移除从机返回
     * @param removeSlaveDeviceNotify
     */
    public void removeSlaveDevice(CDCZRemoveSlaveDeviceNotify removeSlaveDeviceNotify);

    /**
     * 设备重启
     * @param restartResultNotify
     */
    public void restartResult(CDCZRestartResultNotify restartResultNotify);

    public void upgrade(IOTClient iotClient,CDCZUpgradeNotify upgradeNotify);
}
